package car

import (
	"ser1/database"

	"gorm.io/gorm"
)

// CarMapAi 结构体用于存储地图AI相关数据
// @Description 地图AI数据模型，包含标题、备注和JSON格式的配置数据
type CarMapAi struct {
	gorm.Model `gorm:"comment:基础模型"`
	// Title 标题，用于标识地图AI的名称
	Title string `json:"title" gorm:"type:varchar(100);not null;comment:标题"`
	// Remark 备注信息，用于描述地图AI的详细信息
	Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"`
	// JsonData JSON数据，以长文本形式存储地图AI的详细配置数据
	JsonData string `json:"json_data" gorm:"column:json_data;type:longtext;comment:JSON数据"`

	Status uint `json:"status" gorm:"type:tinyint(1);default:1;comment:状态"`
}

// TableName 自定义表名
func (CarMapAi) TableName() string {
	return "map_ai"
}

// CarMap 结构体用于存储地图相关数据
type CarMap struct {
	gorm.Model
	ID              uint   `gorm:"primaryKey;autoIncrement" json:"id"`                                   // ID
	UserID          string `gorm:"column:user_id;type:char(32)" json:"user_id"`                          // 用户ID
	AdminID         string `gorm:"column:admin_id;type:varchar(50)" json:"admin_id"`                     // 管理员ID
	MapID           string `gorm:"column:map_id;type:varchar(50)" json:"map_id"`                         // 地图ID
	MapName         string `gorm:"column:map_name;type:varchar(50)" json:"map_name"`                     // 地图名称
	Img             string `gorm:"column:img;type:varchar(1024)" json:"img"`                             // 图片
	WindowFilePath  string `gorm:"column:window_file_path;type:varchar(1024)" json:"window_file_path"`   // Windows文件路径
	AndroidFilePath string `gorm:"column:android_file_path;type:varchar(1024)" json:"android_file_path"` // Android文件路径
	IosFilePath     string `gorm:"column:ios_file_path;type:varchar(1024)" json:"ios_file_path"`         // iOS文件路径
	CreateTime      string `gorm:"column:create_time;type:varchar(255)" json:"create_time"`              // 创建时间
	UpdateTime      string `gorm:"column:update_time;type:varchar(255)" json:"update_time"`              // 更新时间
	IsDelete        int    `gorm:"column:is_delete;type:int" json:"is_delete"`                           // 是否删除
}

// TableName 自定义表名
func (CarMap) TableName() string {
	return "car_map"
}

func DB1() *gorm.DB {
	return database.GetDB()
}

func init() {
	// 创建表
	database.AutoMigrateTables(&CarMapAi{})
}
